home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / By the Book / Learn C++ (CodeWarrior) / Chap 07.01 - time / time.cp < prev    next >
Text File  |  1995-10-20  |  1KB  |  103 lines

  1. #include <iostream.h>
  2.  
  3.  
  4. //---------------------------------------  Time
  5.  
  6. class Time
  7. {
  8. //            Data members...
  9.     private:
  10.         short    hours;
  11.         short    minutes;
  12.         short    seconds;
  13.  
  14. //            Member functions...
  15.         void    NormalizeTime();
  16.     public:
  17.                 Time();
  18.                 Time( short h, short m, short s );
  19.         void    Display();
  20.         Time    operator+( Time &aTime );
  21.         void    operator*=( short num );
  22. };
  23.  
  24. Time::Time()
  25. {
  26.     seconds = 0;
  27.     minutes = 0;
  28.     hours = 0;
  29. }
  30.  
  31. Time::Time( short h, short m, short s )
  32. {
  33.     seconds = s;
  34.     minutes = m;
  35.     hours = h;
  36.     
  37.     NormalizeTime();
  38. }
  39.  
  40. void    Time::NormalizeTime()
  41. {
  42.     hours += ((minutes + (seconds/60)) / 60);
  43.     
  44.     minutes = (minutes + (seconds/60)) % 60;
  45.     
  46.     seconds %= 60;
  47. }
  48.  
  49. void    Time::Display()
  50. {
  51.     cout << "(" << hours << ":" << minutes
  52.             << ":" << seconds << ")\n";
  53. }
  54.  
  55. Time    Time::operator+( Time &aTime )
  56. {
  57.     short    h;
  58.     short    m;
  59.     short    s;
  60.     
  61.     h = hours + aTime.hours;
  62.     m = minutes + aTime.minutes;
  63.     s = seconds + aTime.seconds;    
  64.     
  65.     Time    tempTime( h, m, s );
  66.     
  67.     return tempTime;
  68. }
  69.  
  70. void    Time::operator*=( short num )
  71. {
  72.     hours *= num;
  73.     minutes *= num;
  74.     seconds *= num;
  75.     
  76.     NormalizeTime();
  77. }
  78.  
  79.  
  80. //---------------------------------------  main
  81.  
  82. int    main()
  83. {
  84.     Time    firstTime( 1, 10, 50 );
  85.     Time    secondTime( 2, 24, 20 );
  86.     Time    sumTime;
  87.     
  88.     firstTime.Display();
  89.     secondTime.Display();
  90.     
  91.     cout << "---------\n";
  92.     
  93.     sumTime = firstTime + secondTime;
  94.     sumTime.Display();
  95.     
  96.     cout << "*      2\n";
  97.     cout << "---------\n";
  98.     
  99.     sumTime *= 2;
  100.     sumTime.Display();
  101.     
  102.     return 0;
  103. }